package com.apartment.own.service;

import java.util.List;
import java.util.Map;

import com.apartment.common.core.domain.entity.SysUser;
import com.apartment.own.domain.OwnSystemNotificationMessage;
import com.apartment.own.request.sys.NotificationMessageDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 后台消息通知Service接口
 * 
 * @author @Dog_E
 * @date 2020-08-28
 */
public interface IOwnSystemNotificationMessageService extends IService<OwnSystemNotificationMessage>
{
    /**
     * 查询后台消息通知
     * 
     * @param id 后台消息通知ID
     * @return 后台消息通知
     */
    public OwnSystemNotificationMessage selectOwnSystemNotificationMessageById(Long id);

    /**
     * 查询后台消息通知列表
     * 
     * @param ownSystemNotificationMessage 后台消息通知
     * @return 后台消息通知集合
     */
    public List<OwnSystemNotificationMessage> selectOwnSystemNotificationMessageList(OwnSystemNotificationMessage ownSystemNotificationMessage);

    /**
     * 新增后台消息通知
     * 
     * @param ownSystemNotificationMessage 后台消息通知
     * @return 结果
     */
    public int insertOwnSystemNotificationMessage(OwnSystemNotificationMessage ownSystemNotificationMessage);

    /**
     * 修改后台消息通知
     * 
     * @param ownSystemNotificationMessage 后台消息通知
     * @return 结果
     */
    public int updateOwnSystemNotificationMessage(OwnSystemNotificationMessage ownSystemNotificationMessage);

    /**
     * 批量删除后台消息通知
     * 
     * @param ids 需要删除的后台消息通知ID
     * @return 结果
     */
    public int deleteOwnSystemNotificationMessageByIds(Long[] ids);

    /**
     * 删除后台消息通知信息
     * 
     * @param id 后台消息通知ID
     * @return 结果
     */
    public int deleteOwnSystemNotificationMessageById(Long id);




    /**
     * @Description: 查询后台消息通知
     * @param messageDTO: 查询消息通知DTO
     * @return: java.util.List<com.apartment.own.domain.OwnSystemNotificationMessage>
     * @Author: @Dog_E
     * @Date: 2020/9/5 0005 11:38
     **/
    public List<OwnSystemNotificationMessage> selectMessageList(NotificationMessageDTO messageDTO, SysUser user);

    /**
     * @Description: 增加已读标识
     * @param  ids: 消息id
     * @param  userId: 当前用户id
     * @Author: @Dog_E
     * @Date: 2020/9/5 0005 11:38
     **/
    public int increaseTheReadMark(Long[] ids,Long userId);



    /**
     * @Description:查询未读条数
     * @return: java.util.Map<java.lang.String,java.lang.Integer>
     * @Author: @Dog_E
     * @Date: 2020/9/8 0008 09:09
     **/
    Map<String,Integer> inquireUnreadNumber();


}
